#extension GL_OES_EGL_image_external : require
//摄像头数据比较特殊的一个地方
precision mediump float;// 数据精度
varying vec2 aCoord;

uniform samplerExternalOES  vTexture;// samplerExternalOES: 图片， 采样器

const highp vec3 W = vec3(0.2125, 0.7154, 0.0721);

void main(){
    //  texture2D: vTexture采样器，采样  aCoord 这个像素点的RGBA值
    vec4 rgba = texture2D(vTexture, aCoord);//rgba

    //原始画面
    //gl_FragColor = rgba;

    //这里进行的颜色变换处理，传说中的黑白滤镜。
    //float color = rgba.r * 0.3 + rgba.g * 0.59 + rgba.b * 0.11;
    //gl_FragColor = vec4(color, color, color, rgba.a);

    //X光效果
    // gl_FragColor = vec4(1.-rgba.r,1.-rgba.g,1.-rgba.b,rgba.a);


    float cx = aCoord.x;
    float cy = aCoord.y;

    //效果一：上半部原画，下半部黑白
//    vec4 sgcolor;
//    if (cx < 0.5){
//        sgcolor = rgba;
//    } else {
//        float color = rgba.r * 0.3 + rgba.g * 0.59 + rgba.b * 0.11;
//        sgcolor = vec4(color, color, color, rgba.a);
//    }
//    gl_FragColor = sgcolor;

    //效果二：两边画面一样，右半部原画，左半部黑白
    vec3 finalColor;
    if (cy < 0.5){
        finalColor = texture2D(vTexture, vec2(cx, cy * 2.0)).rgb;
    } else {
        finalColor = texture2D(vTexture, vec2(cx, (cy - 0.5) * 2.0)).rgb;
        float luminance = dot(finalColor.rgb, W);
        finalColor = vec3(luminance);
    }
    gl_FragColor = vec4(finalColor, 1.0);
}